package com.turing.data.service.element;

import com.baomidou.mybatisplus.extension.service.IService;
import com.turing.common.response.PageBean;
import com.turing.data.model.domain.element.SubProduct;
import com.turing.data.model.domain.element.Template;
import com.turing.data.vo.in.element.TemplateSearchVO;
import com.turing.data.vo.in.element.TemplateVo;

import java.util.List;
import java.util.Set;

public interface TemplateService extends IService<Template> {

    Template getTemplateById(String templateSn);

    Template getTemplateByName(String templateName);


    String getTemplateNameById( String templateSn );

    /**
     * 校验场景是否有权限
     * @param templateId 场景id
     * @return java.lang.Boolean
     * @author lcy
     * @date 2021/6/9 11:05
     **/
    Boolean checkTemplatePrivileges(String templateId);

    /**
     * 获取产品合同所有场景id
     * @return java.util.Set < java.lang.String>
     * @author lcy
     * @date 2021/6/9 11:29
     **/
    Set<String> getProductTemplate();

    /**
     * 获取具有权限的场景id
     * @return java.util.Set < java.lang.String>
     * @author lcy
     * @date 2021/6/9 11:29
     **/
    Set<String> getPrivilegeTemplate();

    /**
     * 开启/关闭场景的自动审核
     * @param autoAudit  开启/关闭--状态
     * @param templateSn 场景id
     * @return java.lang.Boolean
     * @author lcy
     * @date 2021/6/11 10:46
     **/
    boolean optionAutoAudit(Integer autoAudit,String templateSn);

    boolean needsJSON(String templateSn);

    PageBean<TemplateVo> queryByCondition(TemplateSearchVO templateSearchVO);

    List<SubProduct> getSubProducts(String templateId);

    Boolean CVOnline();

}
